package com.qdu.servlet;

import com.oreilly.servlet.MultipartRequest;
import com.qdu.model.Employee;
import com.qdu.service.EmployeeService;
import com.qdu.service.impl.EmployeeServiceImpl;
import com.qdu.util.DateUtil;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 该Servlet负责处理添加新员工的请求
 *
 * @author Anna
 */
@WebServlet("/aes1")
public class AddEmployeeServlet1 extends HttpServlet {

    EmployeeService employeeService = new EmployeeServiceImpl();
    //页面上可以使用虚拟路径，但是在java类中，要使用实际路径
    private String save_directory = "D:\\Typora Img\\photo";

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
        ///1. 获取请求参数
        req.setCharacterEncoding("utf-8");

        //cos提供MultipartRequest类用于再次封装原始请求对象，实现文件上传
        //1. 原始请求对象：包含了普通参数和要上传的文件的信息
        //2. 上传的目标目录
        //3. POST的内容大小限制，1024*1024为1M
        //4. 请求的字符集编码
        MultipartRequest request=new MultipartRequest(req, save_directory,100*1024*1024,"UTF-8");
        
        //如果使用MultipartRequest封装请求对象，则所有参数通过该MultipartRequest对象获取
        String eid = request.getParameter("empId");
        String ename = request.getParameter("empName");
        String egender = request.getParameter("empGender");
        Date edob = DateUtil.parseDate(request.getParameter("empDob"));

        //调用MultipartRequest的getFile()方法可以获取上传的文件的信息
        //进一步调用getName()方法可以获取上传的文件的名称
        //这里的file是页面上type="file"的表单元素的name，也就是请求参数的名称
        String fileName=request.getFile("file").getName();
        
        //获取员工的5项信息，封装成一个Employee对象
        Employee employee = new Employee(eid, ename, egender, edob, fileName);

        //2. 调用业务逻辑，完成请求处理
        int rows = employeeService.addNewEmployee(employee);

        //3. 生成响应内容
        
        String content="添加员工成功，请<a href=\"index.jsp\">返回</a>首页查询所有员工！！！";
        
        if(rows==0)
            content="添加员工失败，请<a href=\"javascript:history.back();\">返回</a>查看信息是否正确或员工编号是否已被注册！！！";
        
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter out = resp.getWriter();
        out.println("<link rel=\"stylesheet\" href=\"css/bootstrap.min.css\"/>");
        out.println("<br><br><br><br><br><br><br>");
        out.println("<div class=\"container text-warning bg-warning text-center\">");
        out.println("<hr>");
        out.println("<h2>"+content+"</h2>");
        out.println("<hr>");
        out.println("</div>");
    }
}
